package com.flydog.mall.service.pms;

import com.flydog.mall.common.api.PageResponse;
import com.flydog.mall.dto.PmsProductAttributeParam;
import com.flydog.mall.entity.pms.PmsProductAttribute;

import java.util.Optional;

/**
 * @author Cao
 * @description 商品属性服务
 * @create 2021-03-24
 */
public interface PmsProductAttributeService {

    /**
     * 创建新属性
     * @param param 属性信息
     * @return 创建的数量
     */

    int create(PmsProductAttributeParam param);


    /**
     * 根据ID获取属性
     * @param id 属性编号
     * @return 属性信息
     */
    Optional<PmsProductAttribute>  getById(Long id);

    /**
     * 更新商品属性
     * @param id 属性ID
     * @param param 属性信息
     * @return 更新的数量
     */

    int update(Long id, PmsProductAttributeParam param);

    /**
     * 删除多个属性
     * @param ids 属性ID的列表
     * @return 删除的数量
     */

    int delete(Long[] ids);

    /**
     * 根据分类Id（cid）, 分类标志获取分页属性信息
     * @param cid 分类id
     * @param type 分类标志
     * @param pageNum 当前页码
     * @param pageSize 页面大小
     * @return 分布信息
     */
    PageResponse<PmsProductAttribute> getListByCidAndType(Long cid, Integer type, Integer pageNum, Integer pageSize);

}
